package com.demo.common.monitor;

/**
 * 监控服务接口
 * @author ryuu.kk
 *
 */
public interface MonitorService {
	
	/**
	 * 获取当前监控信息
	 * 包含vm内存使用,物理内存,CPU,线程信息等
	 * @return MonitorInfo
	 */
	public MonitorInfo getMonitorInfo();
	
	/**
	 * 描绘vm内存使用量
	 * 由五个指标组成：<ul>
	 * 	<li>0:Code Cache;</li>
	 * 	<li>1:PS Eden Space;</li>
	 * 	<li>2:PS Surivor Space;</li>
	 * 	<li>3:PS Old Gen;</li>
	 *  <li>4:PS Perm Gen;</li></ul>
	 * @return float[][] 当前内存使用量
	 */
	float[][] plotMemoryData();
	
	/**
	 * 获得vm内存的最大使用量
	 * @return float[] 最大允许使用量
	 */
	float[] plotMemoryMax();
	
	/**
	 * 获取vm内存指标名称
	 * @return String[] 内存指标数组
	 */
	String[] plotMemoryName();
}